#-*- coding: utf-8 -*-

##
 # Esse arquivo é parte do Software Encainador
 # 
 # Copyright (C) 2011-$AnoCorrente$ Dyego Ítallo Silva Ferreira
 # Copyright (C) 2011-$AnoCorrente$ Marcos José Ferreira Neto
 # Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 # Copyright (C) 2011-$AnoCorrente$ Rogério Silva dos Santos
 # 
 # Encainador é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 # de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 # conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 # na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 # 
 # Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 # se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 # Boston, MA  02110-1301  USA
 # 
 # Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 # contato nos e-mails <dyegoitallo@gmail.com>, <marcosjfneto@gmail.com>, <barbosa.edrd@gmail.com>, <roger.silva23@hotmail.com>.
##

from pickle import dump, load

def recordes_escrever(nome, score):
    try:
        dados = open("dados.txt", "r")
        historico = load(dados)
        dados.close()
    except IOError:
        dados = open("dados.txt", "w")
        historico = {}
        dados.close()

    if nome in historico.keys():
        lista = historico[nome]
        lista.append(score)
        historico[nome] = lista
    else:
        historico[nome] = [score]

    dados = open("dados.txt", "w")
    dump(historico, dados)
    dados.close()

def recordes_ler():
    try:
        dados = open("dados.txt", "r")
        historico = load(dados)
        dados.close()
        todos_scores = []
        for x in historico.keys():
            todos_scores += historico[x]

        todos_scores.sort()
        todos_scores.reverse()

        resultado = []
        colocacao = 1
        for x in todos_scores:
            for y in historico.keys():
                if x in historico[y]:
                    resultado.append([str(colocacao), y, str(x)])
                    colocacao += 1
        return resultado[:5]

    except IOError:
        return ['', '', '']
